﻿using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using Sinacor.Infra.UI.Common;

namespace Sinacor.UI.Bovespa.Clientes.Model 
{
    public class PesquisaCliente : BaseModel
    {
        private int? _codigo;
        public int? Codigo
        {
            get { return _codigo; }
            set { _codigo = value; this.OnPropertyChanged("Codigo"); }
        }

        private int? _digitoVerificador;
        public int? DigitoVerificador
        {
            get { return _digitoVerificador; }
            set { _digitoVerificador = value; this.OnPropertyChanged("DigitoVerificador"); }
        }

        private string _apelido;
        public string Apelido
        {
            get { return _apelido; }
            set { _apelido = value; this.OnPropertyChanged("Apelido"); }
        }

        /// <summary>
        /// alt - NomeCliente para Nome
        /// </summary>
        private string _nome;
        public string NomeCliente
        {
            get { return _nome; }
            set { _nome = value; this.OnPropertyChanged("NomeCliente"); }
        }

        /// <summary>
        /// alt de (CpfCnpj) para (CPFCNPJ)
        /// </summary>
        private long? _CPFCNPJ;
        public long? CpfCnpj
        {
            get { return _CPFCNPJ; }
            set { _CPFCNPJ = value; this.OnPropertyChanged("CpfCnpj"); }
        }

        /// <summary>
        /// inc para contornar erro na exportacao causado pelo atributo (long?) - esertorio - 200805132150 - ref issue ID0004794
        /// </summary>
        private string _CPFCNPJString;
        public string CPFCNPJString
        {
            get { return _CPFCNPJString; }
            set { _CPFCNPJString = value; this.OnPropertyChanged("CPFCNPJString"); }
        }

        private string _codigoOperacionalCVM;
        public string CodigoOperacionalCVM
        {
            get { return _codigoOperacionalCVM; }
            set { _codigoOperacionalCVM = value; this.OnPropertyChanged("CodigoOperacionalCVM"); }
        }

        /// <summary>
        /// inc
        /// </summary>
        private string _complementoNome;
        public string ComplementoNome
        {
            get { return _complementoNome; }
            set { _complementoNome = value; this.OnPropertyChanged("ComplementoNome"); }
        }

        /// <summary>
        /// inc
        /// </summary>
        private System.DateTime? _dataNascimentoFundacao;
        public System.DateTime? DataNascimentoFundacao
        {
            get { return _dataNascimentoFundacao; }
            set { _dataNascimentoFundacao = value; this.OnPropertyChanged("DataNascimentoFundacao"); }
        }

        /// <summary>
        /// inc
        /// </summary>
        private string _dependencia;
        public string Dependencia
        {
            get { return _dependencia; }
            set { _dependencia = value; this.OnPropertyChanged("Dependencia"); }
        }

        /// <summary>
        /// inc
        /// </summary>
        private bool? _isPessoaVinculada;
        public bool? IsPessoaVinculada
        {
            get { return _isPessoaVinculada; }
            set { _isPessoaVinculada = value; this.OnPropertyChanged("IsPessoaVinculada"); }
        }

        /// <summary>
        /// inc
        /// </summary>
        private int? _clienteBroker;
        public int? ClienteBroker
        {
            get { return _clienteBroker; }
            set { _clienteBroker = value; this.OnPropertyChanged("ClienteBroker"); }
        }

        /// <summary>
        /// inc
        /// </summary>
        private bool? _isClienteQualificado;
        public bool? IsClienteQualificado
        {
            get { return _isClienteQualificado; }
            set { _isClienteQualificado = value; this.OnPropertyChanged("IsClienteQualificado"); }
        }

        /// <summary>
        /// inc
        /// </summary>
        private bool? _isBloqueado;
        public bool? IsBloqueado
        {
            get { return _isBloqueado; }
            set { _isBloqueado = value; this.OnPropertyChanged("IsBloqueado"); }
        }

        /// <summary>
        /// inc
        /// </summary>
        private string _descricaoBloqueio;
        public string DescricaoBloqueio
        {
            get { return _descricaoBloqueio; }
            set { _descricaoBloqueio = value; this.OnPropertyChanged("DescricaoBloqueio"); }
        }

        /// <summary>
        /// inc
        /// </summary>
        private Model.Enum.TipoSituacaoCliente? _situacao;
        public Model.Enum.TipoSituacaoCliente? Situacao
        {
            get { return _situacao; }
            set { _situacao = value; this.OnPropertyChanged("Situacao"); }
        }
    }
}